﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum РазделителиРазрядовСерийногоНомера
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"20d74add-a467-462a-9648-b3259e678ec8\", \"Представление\":\"Точка\"}")]
		Точка = 0,//"."
		[EnumMember(Value = "{\"Ссылка\":\"39483307-1aee-40e1-bec3-d334562fd2d8\", \"Представление\":\"Запятая\"}")]
		Запятая = 1,//","
		[EnumMember(Value = "{\"Ссылка\":\"a231e0bc-4c63-4086-8646-6af499f8c0c2\", \"Представление\":\"Двоеточие\"}")]
		Двоеточие = 2,//":"
		[EnumMember(Value = "{\"Ссылка\":\"15bbbb75-df89-4706-9b87-bcea6de75ab1\", \"Представление\":\"ТочкаСЗапятой\"}")]
		ТочкаСЗапятой = 3,//";"
		[EnumMember(Value = "{\"Ссылка\":\"c93ffd67-0339-4802-b581-e173b6c648ef\", \"Представление\":\"Пробел\"}")]
		Пробел = 4,//" "
		[EnumMember(Value = "{\"Ссылка\":\"da9490da-8dcc-4d9e-b77e-e2a45b11d4c4\", \"Представление\":\"Подчеркивание\"}")]
		Подчеркивание = 5,//"_"
		[EnumMember(Value = "{\"Ссылка\":\"eaafacf6-deba-4e63-b2fb-34cada1402bb\", \"Представление\":\"Тире\"}")]
		Тире = 6,//"-"
		[EnumMember(Value = "{\"Ссылка\":\"2b66fd99-4f88-4c21-89ac-5171685e8ec8\", \"Представление\":\"КосаяЧерта\"}")]
		КосаяЧерта = 7,//"/"
		[EnumMember(Value = "{\"Ссылка\":\"48a35259-8023-41a0-8f5f-a332dc42dce8\", \"Представление\":\"ОбратнаяКосаяЧерта\"}")]
		ОбратнаяКосаяЧерта = 8,//"\"
	}
	public static partial class РазделителиРазрядовСерийногоНомера_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid Точка = new Guid("25b34896-679e-c88e-462a-a46720d74add");//"."
		public static readonly Guid Запятая = new Guid("34d3c3be-2f56-d8d2-40e1-1aee39483307");//","
		public static readonly Guid Двоеточие = new Guid("f46a4686-f899-c2c0-4086-4c63a231e0bc");//":"
		public static readonly Guid ТочкаСЗапятой = new Guid("eabc879b-e76d-b15a-4706-df8915bbbb75");//";"
		public static readonly Guid Пробел = new Guid("73e181b5-c6b6-ef48-4802-0339c93ffd67");//" "
		public static readonly Guid Подчеркивание = new Guid("a4e27eb7-115b-c4d4-4d9e-8dccda9490da");//"_"
		public static readonly Guid Тире = new Guid("ca34fbb2-14da-bb02-4e63-debaeaafacf6");//"-"
		public static readonly Guid КосаяЧерта = new Guid("7151ac89-5e68-c88e-4c21-4f882b66fd99");//"/"
		public static readonly Guid ОбратнаяКосаяЧерта = new Guid("32a35f8f-42dc-e8dc-41a0-802348a35259");//"\"
		public static РазделителиРазрядовСерийногоНомера Получить(this РазделителиРазрядовСерийногоНомера Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static РазделителиРазрядовСерийногоНомера Получить(this РазделителиРазрядовСерийногоНомера Значение, Guid Ссылка)
		{
			if(Ссылка == Точка)
			{
				return РазделителиРазрядовСерийногоНомера.Точка;
			}
			else if(Ссылка == Запятая)
			{
				return РазделителиРазрядовСерийногоНомера.Запятая;
			}
			else if(Ссылка == Двоеточие)
			{
				return РазделителиРазрядовСерийногоНомера.Двоеточие;
			}
			else if(Ссылка == ТочкаСЗапятой)
			{
				return РазделителиРазрядовСерийногоНомера.ТочкаСЗапятой;
			}
			else if(Ссылка == Пробел)
			{
				return РазделителиРазрядовСерийногоНомера.Пробел;
			}
			else if(Ссылка == Подчеркивание)
			{
				return РазделителиРазрядовСерийногоНомера.Подчеркивание;
			}
			else if(Ссылка == Тире)
			{
				return РазделителиРазрядовСерийногоНомера.Тире;
			}
			else if(Ссылка == КосаяЧерта)
			{
				return РазделителиРазрядовСерийногоНомера.КосаяЧерта;
			}
			else if(Ссылка == ОбратнаяКосаяЧерта)
			{
				return РазделителиРазрядовСерийногоНомера.ОбратнаяКосаяЧерта;
			}
			return РазделителиРазрядовСерийногоНомера.ПустаяСсылка;
		}
		public static byte[] Ключ(this РазделителиРазрядовСерийногоНомера Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this РазделителиРазрядовСерийногоНомера Значение)
		{
			switch (Значение)
			{
				case РазделителиРазрядовСерийногоНомера.Точка: return Точка;
				case РазделителиРазрядовСерийногоНомера.Запятая: return Запятая;
				case РазделителиРазрядовСерийногоНомера.Двоеточие: return Двоеточие;
				case РазделителиРазрядовСерийногоНомера.ТочкаСЗапятой: return ТочкаСЗапятой;
				case РазделителиРазрядовСерийногоНомера.Пробел: return Пробел;
				case РазделителиРазрядовСерийногоНомера.Подчеркивание: return Подчеркивание;
				case РазделителиРазрядовСерийногоНомера.Тире: return Тире;
				case РазделителиРазрядовСерийногоНомера.КосаяЧерта: return КосаяЧерта;
				case РазделителиРазрядовСерийногоНомера.ОбратнаяКосаяЧерта: return ОбратнаяКосаяЧерта;
			}
			return Guid.Empty;
		}
	}
}